/*
    String
        lang包,不需要导包
 */
/**kil*/
public class StringBreif {
    public static void main(String[] args) {

        //1 定义字符串变量
        /*
            所有 双引号内容 自动认为String类对象(lang包内 直接用 不用引)

            字符串是常量；它们的值在创建之后不能更改
         */
        String s0 = "Yes";
        int length = s0.length();//ctrl + Alt + v 快捷键-直接生成变量接收方法返回值
        System.out.println(length);
        /*
            下面同理
            Student stu = new Student("甲",19);
            stu = new Student("乙",24);

            stu.setName("丙");//真正修改
         */
        s0 = "Yui" ;//右边已经默认创建了该新对象,将该值赋给左边//不是修改值
        int length1 = s0.length();
        System.out.println(length1);

        //2 String 对象特点
        /*
            构造方法

            直接赋值

            比较各对象地址  == 基本类型比较 数值
                             引用类型比较 地址
         */
        char[] c_list = {'栈','内','存'};//地址001
        //数组对象，把中括号放在变量后面是C语言的风格，而Java习惯放在变量类型后面
        String s1 = new String(c_list);//地址002
        String s2 = new String(c_list);//地址003
        System.out.println(s1 == s2);//false

        String s3 = "栈内存a";//地址004
        String s4 = "栈内存a";//还是004
        System.out.println(s3 == s4);//true

        String s = "栈内存A";
        String s5 = new String(s);
        String s6 = new String(s);
        System.out.println(s5 == s6);//false

        System.out.println(s1 == s3);
        System.out.println(s2 == s3);

        //3字符串比较
        System.out.println(s.equals(s3));//区分大小写
        System.out.println(s.equalsIgnoreCase(s3));//忽略大小写(应用-验证码输入)



    }

}
